﻿Imports TransportadoraToledoBLL
Imports TransportadoraToledoDAL
Public Class frm_cadastro_clientes

    'Dim cli_cod As Integer = 0
    'Dim tab As DataTable

#Region "Métodos e Variáveis"
    Public objBLL As New ClienteBLL
    Public objDAL As New Dados
    Public controle As String
    Public ultimo, primeiro, atual As Integer
    Public tipopessoa As Char

    Sub validaTipoPessoa(ByVal status As Boolean)
        If status = True Then

            lcpf.Visible = True
            lnasc.Visible = True
            tbnasc.Visible = True
            lrg.Visible = True
            lcnpj.Visible = False
            lfantasia.Visible = False
            tbnomefantasia.Visible = False
            lramo.Visible = False
            tbramo.Visible = False
            lie.Visible = False
            tbie.Visible = False
            tbrg.Visible = True

            tbcpfcnpj.Mask = "000.000.000-00"
        Else
            lcpf.Visible = False
            lnasc.Visible = False
            tbnasc.Visible = False
            lrg.Visible = False
            tbrg.Visible = False
            lcnpj.Visible = True
            lfantasia.Visible = True
            tbnomefantasia.Visible = True
            lramo.Visible = True
            tbramo.Visible = True
            lie.Visible = True
            tbie.Visible = True
            tbcpfcnpj.Mask = "##.###.###/####-##"
        End If

        If (rbfisica.Checked = True) Then
            tipopessoa = "F"
        Else
            tipopessoa = "J"
        End If
    End Sub

    Sub carregaPrimeiroUltimo()
        Try
            ultimo = objBLL.localizarPrimeiroUltimo("ultimo", tipopessoa)
            primeiro = objBLL.localizarPrimeiroUltimo("primeiro", tipopessoa)
            atual = ultimo
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

    End Sub


    Sub carregaUltimo()
        Try
            If (ultimo <> 0) Then
                objBLL.localizar(tipopessoa, ultimo, "")
                If (objBLL.pCodigo <> 0) Then
                    carregaCampos()

                End If
            Else
                limpar()
            End If
        Catch ex As Exception
            Throw ex
        End Try
        
    End Sub
    Sub carregaPrimeiro()
        If (primeiro <> 0) Then
            'algum usuario foi clicado
            objBLL.localizar(primeiro, "")
            If (objBLL.pCodigo <> 0) Then
                carregaCampos()

            End If
        End If
    End Sub

    Sub limpar()
        tbcodigo.Text = ""
        tbcodigoCliente.Text = ""
        tbnome.Text = ""
        tbtelefone.Text = ""
        tbrecado.Text = ""
        tbcelular.Text = ""
        tblogradouro.Text = ""
        tblogradouroc.Text = ""
        tbnumero.Text = ""
        tbnumeroc.Text = ""
        tbcomplemento.Text = ""
        tbcomplementoc.Text = ""
        tbbairro.Text = ""
        tbbairroc.Text = ""
        tbcep.Text = ""
        tbcepc.Text = ""
        tbcpfcnpj.Text = ""
        tbnasc.Value = Date.Now
        tbnomefantasia.Text = ""
        tbramo.Text = ""
        tbie.Text = ""
        tbrg.Text = ""
        gbdados.Enabled = True
        controle = ""
        tbemail.Text = ""
        lbemail.Items.Clear()
        cbCidade.SelectedIndex = -1
        objBLL.limpar()
    End Sub

    Sub status(ByVal sta As Boolean)

        If (tbcodigo.Text = "" Or controle = "A") Then
            bIncluir.Enabled = sta

            bExcluir.Enabled = sta
            If (tbcodigo.Text = "") Then
                bAlterar.Enabled = False
                bVaPara.Enabled = False
                bPesquisar.Enabled = False
                bExcluir.Enabled = False
            Else
                bExcluir.Enabled = sta
                bPesquisar.Enabled = sta
                bAlterar.Enabled = sta
                bVaPara.Enabled = sta
            End If
            bCancelar.Enabled = Not sta
            bSalvar.Enabled = Not sta
            bPrimeiro.Enabled = sta
            bProximo.Enabled = sta
            bUltimo.Enabled = sta
            bAnterior.Enabled = sta
            gbdados.Enabled = Not sta
        Else
            bIncluir.Enabled = sta

            If (tbcodigo.Text = "") Then
                bExcluir.Enabled = False
                bAlterar.Enabled = False
                bVaPara.Enabled = False
                bPesquisar.Enabled = False
            Else
                bExcluir.Enabled = sta
                bAlterar.Enabled = sta
                bVaPara.Enabled = sta
                bPesquisar.Enabled = sta
            End If

            bCancelar.Enabled = Not sta
            bSalvar.Enabled = Not sta
            gbdados.Enabled = Not sta
        End If

        If (atual = primeiro And atual = ultimo) Then
            bProximo.Enabled = False
            bUltimo.Enabled = False
            bAnterior.Enabled = False
            bPrimeiro.Enabled = False
        ElseIf (atual = ultimo) Then
            bProximo.Enabled = False
            bUltimo.Enabled = False
            bAnterior.Enabled = True
            bPrimeiro.Enabled = True
        ElseIf (atual = primeiro) Then
            bProximo.Enabled = True
            bUltimo.Enabled = True
            bAnterior.Enabled = False
            bPrimeiro.Enabled = False
        Else
            bProximo.Enabled = True
            bUltimo.Enabled = True
            bAnterior.Enabled = True
            bPrimeiro.Enabled = True

        End If
    End Sub

    Sub carregaPropriedades()

        Try
            If (tbcodigo.Text = "") Then
                objBLL.pCodigo = 0
            Else
                objBLL.pCodigo = tbcodigo.Text
            End If

            objBLL.pNome = tbnome.Text
            objBLL.ptelefone = tbtelefone.Text
            objBLL.pcelular = tbcelular.Text
            objBLL.ptelrecado = tbrecado.Text
            objBLL.pLogradouro = tblogradouro.Text
            objBLL.plogradouroc = tblogradouroc.Text
            objBLL.pNumero = tbnumero.Text
            objBLL.pnumeroc = tbnumeroc.Text
            If tbcomplemento.Text = "" Then
                objBLL.pComplemento = Nothing
            Else
                objBLL.pComplemento = tbcomplemento.Text
            End If
            If tbcomplementoc.Text = "" Then
                objBLL.pcomplementoc = Nothing
            Else
                objBLL.pcomplementoc = tbcomplementoc.Text
            End If
            objBLL.pbairro = tbbairro.Text
            objBLL.pbairroc = tbbairroc.Text
            objBLL.pcep = tbcep.Text
            objBLL.pcepc = tbcepc.Text
            objBLL.pCodCidade = cbCidade.SelectedValue

            If rbfisica.Checked Then
                tbrg.Visible = True
                lrg.Visible = True

                objBLL.prg = tbrg.Text
                objBLL.pcpf = tbcpfcnpj.Text
                objBLL.pdtnasc = tbnasc.Value
                objBLL.ptipofj = "F"

                ''objBLL.pcnpj = ""
                ''objBLL.pnomefantasia = ""
                ''objBLL.pramo = ""
                ''objBLL.pie = ""
            Else
                objBLL.pcnpj = tbcpfcnpj.Text
                objBLL.pnomefantasia = tbnomefantasia.Text
                objBLL.pramo = tbramo.Text
                objBLL.pie = tbie.Text
                objBLL.ptipofj = "J"

                'objBLL.prg = ""
                'objBLL.pcpf = ""
                'objBLL.pdtnasc = "00-00-0000"
            End If


        Catch ex As Exception
            Throw ex
        End Try
    End Sub

    Sub verificagbdados(ByVal status As Boolean)
        gbdados.Enabled = status
    End Sub
    Sub carregaCampos()
        Try
            tbcodigo.Text = objBLL.pCodigo
            tbcodigoCliente.Text = objBLL.pCodigoCliente
            tbnome.Text = objBLL.pNome
            tbtelefone.Text = objBLL.ptelefone
            tbcelular.Text = objBLL.pcelular
            tbrecado.Text = objBLL.ptelrecado
            tblogradouro.Text = objBLL.pLogradouro
            tblogradouroc.Text = objBLL.plogradouroc
            tbnumero.Text = objBLL.pNumero
            tbnumeroc.Text = objBLL.pnumeroc
            tbbairro.Text = objBLL.pbairro
            tbbairroc.Text = objBLL.pbairroc
            tbcep.Text = objBLL.pcep
            tbcepc.Text = objBLL.pcepc
            cbCidade.SelectedValue = objBLL.pCodCidade

            If objBLL.pComplemento = Nothing Then
                tbcomplemento.Text = ""
            Else
                tbcomplemento.Text = objBLL.pComplemento
            End If

            If objBLL.pcomplementoc = Nothing Then
                tbcomplementoc.Text = ""
            Else
                tbcomplementoc.Text = objBLL.pcomplementoc
            End If

            If objBLL.ptipofj = "F" Then
                validaTipoPessoa(True)
                tbrg.Text = objBLL.prg
                tbcpfcnpj.Text = objBLL.pcpf
                tbnasc.Value = objBLL.pdtnasc
            Else
                tbcpfcnpj.Text = objBLL.pcnpj
                tbnomefantasia.Text = objBLL.pnomefantasia
                tbramo.Text = objBLL.pramo
                tbie.Text = objBLL.pie
                validaTipoPessoa(False)
                rbjuridica.Checked = True
            End If


        Catch ex As Exception
            Throw ex
        End Try
    End Sub

   
#End Region

    Private Sub frm_cadastro_clientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        verificagbdados(False)
        objDAL.preencheCombo(cbCidade, "cidade", "cod_cidade", "nom_cidade", "", "")
        gbbotoes.Enabled = False
        bCancelar_Click(sender, e)
        
    End Sub

    Private Sub bSair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bSair.Click
        Me.Close()

    End Sub

    Private Sub bAjuda_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bAjuda.Click
        MessageBox.Show(Application.StartupPath)
        Dim Ie As Object
        Ie = CreateObject("InternetExplorer.Application")
        Ie.Visible = True
        Ie.Navigate("\Arquivo de Ajuda\Index.html")
    End Sub


    Private Sub bIncluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bIncluir.Click
        limpar()
        controle = "I"
        status(False)

    End Sub

    Private Sub bAlterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bAlterar.Click
        controle = "A"
        status(False)
    End Sub

    Private Sub bExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bExcluir.Click
        Try
            If (MessageBox.Show("Deseja excluir?", "", MessageBoxButtons.YesNo) = DialogResult.Yes) Then
                carregaPropriedades()
                objBLL.excluir()
                MessageBox.Show("Excluido com sucesso!")
                limpar()
                carregaPrimeiroUltimo()
                carregaUltimo()
                status(True)
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub bSalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bSalvar.Click
        Try
            If rbfisica.Checked Then
                If objBLL.ValidaCPF(tbcpfcnpj.Text) Then
                    carregaPropriedades()
                    If (controle = "I") Then
                        objBLL.inserir()
                        MessageBox.Show("Incluido com sucesso!")
                        limpar()
                        carregaPrimeiroUltimo()
                        carregaUltimo()
                        status(True)
                    Else
                        objBLL.alterar()

                        MessageBox.Show("Alterado com sucesso!")

                        status(True)
                    End If
                Else
                    MsgBox("CPF inválido")
                End If

            ElseIf objBLL.ValidaCNPJ(tbcpfcnpj.Text) Then
                carregaPropriedades()
                If (controle = "I") Then
                    objBLL.inserir()
                    


                    MessageBox.Show("Incluido com sucesso!")
                    limpar()
                    carregaPrimeiroUltimo()
                    carregaUltimo()
                    status(True)
                Else
                    objBLL.alterar()

                    MessageBox.Show("Alterado com sucesso!")

                    status(True)

                End If
            Else
                MsgBox("CNPJ inválido")
            End If

            For i = 0 To lbemail.Items.Count

                objBLL.inseriremail(lbemail.Items.Item(i), tbcodigo.Text)

            Next
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub bUltimo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bUltimo.Click
        carregaUltimo()
        atual = ultimo
        status(True)
    End Sub

    Private Sub bPrimeiro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bPrimeiro.Click
        carregaPrimeiro()
        atual = primeiro
        status(True)
    End Sub

    Private Sub bProximo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bProximo.Click
        Dim codigo = objBLL.localizarProxAnteriro("proximo", atual)
        objBLL.localizar(codigo, "")
        If (objBLL.pCodigoCliente <> 0) Then
            carregaCampos()
            atual = objBLL.pCodigoCliente
        End If
        status(True)
    End Sub

    Private Sub bAnterior_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bAnterior.Click
        Dim codigo = objBLL.localizarProxAnteriro("anterior", atual)
        objBLL.localizar(codigo, "")
        If (objBLL.pCodigoCliente <> 0) Then
            carregaCampos()
            atual = objBLL.pCodigoCliente
        End If
        status(True)
    End Sub

    Private Sub bPesquisar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bPesquisar.Click
        Dim frm As New frm_consultas("Clientes")
        frm.ShowDialog()
        If (frm.codigo <> 0) Then
            objBLL.localizar(frm.codigo)
            If (objBLL.pCodigo <> 0) Then
                carregaCampos()
            End If
        End If
        frm = Nothing
    End Sub


    Private Sub rbjuridica_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbjuridica.CheckedChanged

        validaTipoPessoa(False)
        carregaPrimeiroUltimo()
        carregaUltimo()
        bCancelar_Click(sender, e)
        verificagbdados(False)


    End Sub

    Private Sub rbfisica_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbfisica.CheckedChanged
        gbbotoes.Enabled = True

        validaTipoPessoa(True)
        carregaPrimeiroUltimo()
        carregaUltimo()
        bCancelar_Click(sender, e)
        verificagbdados(False)



    End Sub


    Private Sub ckbmesmo_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckbmesmo.CheckedChanged
        If ckbmesmo.Checked Then
            gbcobranca.Enabled = False
            tblogradouroc.Text = tblogradouro.Text
            tbcomplementoc.Text = tbcomplemento.Text
            tbnumeroc.Text = tbnumero.Text
            tbbairroc.Text = tbbairro.Text
            tbcepc.Text = tbcep.Text

        Else
            gbcobranca.Enabled = True
        End If

    End Sub


    Private Sub bCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bCancelar.Click
        Try
            If (controle = "I") Then
                carregaPrimeiroUltimo()
                carregaUltimo()
            ElseIf (controle = "A") Then
                objBLL.localizar(atual)
                If (objBLL.pCodigo <> 0) Then
                    carregaCampos()
                    atual = objBLL.pCodigo
                End If
            End If
            controle = ""

            status(True)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        
    End Sub


    Private Sub bVaPara_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bVaPara.Click
        Try
            Dim frm As New frm_VaPara("clientes")
            frm.ShowDialog()
            If (frm.codigo <> 0) Then
                'algum usuario foi clicado
                objBLL = New ClienteBLL
                objBLL.localizarcliente(frm.codigo)
                If (objBLL.pCodigo <> 0) Then
                    carregaCampos()
                    atual = objBLL.pCodigo
                End If
            End If
            status(True)
            frm = Nothing
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            objBLL = Nothing
        End Try
    End Sub

    Private Sub badicionar_Click(sender As System.Object, e As System.EventArgs) Handles badicionar.Click
        If tbemail.Text = "" Then
            MsgBox("Preencha o campo de e-mail")
        Else
            lbemail.Items.Add(tbemail.Text)
            tbemail.Text = ""
        End If
        
        tbemail.Focus()

    End Sub

    Private Sub bremover_Click(sender As System.Object, e As System.EventArgs) Handles bremover.Click
        If lbemail.SelectedIndex < 0 Then
            MsgBox("Selecione um e-mail")
        Else
            lbemail.Items.RemoveAt(lbemail.SelectedIndex)
        End If
    End Sub
End Class